// Set 是 ES6 引入的一个数据结构，它是一种集合，其中所有的元素都是唯一的。
// 我们可以通过将数组转换为 Set 来实现去重，因为 Set 自动去除重复的元素。

const uniqueArray = [...new Set([1, 2, 2, 3, 4, 4, 5])];
console.log(uniqueArray); // [1, 2, 3, 4, 5]

// 优点：

// 简洁：代码简短，且语法直观。
// 高效：Set 的内部实现基于哈希结构，因此其查找和插入操作都是常数时间复杂度 O(1)。去重操作的时间复杂度为 O(n)。

// 缺点：

// 不支持旧版浏览器：Set 是 ES6 特性，如果需要在旧版浏览器（如 IE11）中使用，可能需要引入 polyfill。
// 无法处理复杂的对象去重：对于简单的基本类型（如数字、字符串）去重效果很好，但在处理对象（如 [{a:1}, {a:1}]）时，
// Set 认为两个不同的对象引用（即使内容相同）也是不同的。